import pandas as pd
import os


# 当处理超大文件时，使用生成器可以避免将整个文件读入内存中，从而减少内存占用，提高程序的效率。
# 生成器是一种特殊的迭代器，可以通过函数来生成一系列的值，而不需要一次性生成所有值。
# 在处理超大文件时，我们可以编写一个生成器函数来逐行读取文件，然后将每行数据作为生成器的一个值返回。

def read_large_file(file_path):
    """
    生成器函数，逐行读取超大文件
    """
    with open(file_path, 'r') as f:
        for line in f:
            yield line.strip().split(',')  # 将每行数据以列表形式返回，去除换行符和分隔符
 
# # 使用生成器函数逐行读取超大文件
# for row in read_large_file('large_table.csv'):
#     # 处理每行数据
#     pass
# 做成装饰器


 
def read_large_excel(file_path):
    """
    生成器函数，逐行读取超大 Excel 文件
    """
    import openpyxl
    workbook = openpyxl.load_workbook(file_path)
    worksheet = workbook.active
    for row in worksheet.iter_rows(values_only=True):
        yield row
 
# # 使用生成器函数逐行读取超大 Excel 文件
# for row in read_large_excel('large_file.xlsx'):
#     # 处理每行数据
#     pass
# 做成装饰器


